package msgcomm.messages;

import msgcomm.Receiver;

/**
 *
 * Notifica entrata/uscita dal gruppo
 *
 */
public class NotifyChangeGroup extends NormalPayload{
	
	private static final long serialVersionUID = -4350288581376952032L;

	/**
	 * Nome del transiceiver che entra/esce
	 */
	public final String transName;
	/**
	 * Receiver del transiceiver che entra/esce
	 */
	public final Receiver trans;
	/**
	 * true se il transceiver entra, false se esce.
	 * Non significativo se isCrashed==true
	 */
	public final boolean joinLeave; //true = join, false = leave
	
	/**
	 * Crea una nuova notifica relativa a un transceiver che e' entrato
	 * @param transName nome del transceiver in questione
	 * @param trans receiver del transceiver in questione
	 */
	public NotifyChangeGroup(String transName, Receiver trans){
		
		this.transName=transName;
		this.trans=trans;
		this.joinLeave=true;
		
	}
	
	/**
	 * Crea una nuova notifica relativa a un transceiver che e' uscito
	 * @param transName nome del transceiver in questione
	 * @param trans receiver del transceiver in questione
	 */
	public NotifyChangeGroup(String transName){
		
		this.transName=transName;
		this.trans=null;
		this.joinLeave=false;
		
	}

	@Override
	public String toString() {
		if (joinLeave){
			return "NotifyChangeGroup[" + transName + ", join]";
		} else {
			return "NotifyChangeGroup[" + transName + ", leave]";
		}
	}
	
	
	
}
